export enum ShapeName {
  BLUE_PRINT = 'blue-print',
  LLM_EXEC = 'LLM_EXEC',
  INTENTION = 'INTENTION',
  VALUE_INPUT='VALUE_INPUT',
  VALUE_OUTPUT='VALUE_OUTPUT',
  FILE_LOADER='FILE_LOADER',
  TEXT_CHUNK='TEXT_CHUNK',
  MARKING_TAG = 'MARKING_TAG',
  SCORING = 'SCORING',
  MCP_ANALYZING_RESUME='MCP_ANALYZING_RESUME',
  CONTENT_CLASSIFY='CONTENT_CLASSIFY',
  DATABASE_QDRANT='DATABASE_QDRANT',
  QUERY_QDRANT='QUERY_QDRANT',
  DOCUMENT_TRANSFORM='DOCUMENT_TRANSFORM',
  MULTIMODAL='MULTIMODAL',
  UPLOAD_FILE2AI='UPLOAD_FILE2AI',
  IF_ELSE='IF_ELSE',
  RANDOM_NODE='RANDOM_NODE',
  FILE_TYPE='FILE_TYPE',
  CONSTANT='CONSTANT',
  SAVE_2ES='SAVE_2ES',
  QUERY_2ES='QUERY_2ES',
}
export enum NodeType {
  FUNCTION = 'Function',
  EVENT = 'Event',
}
export const NodeTypeMeta = {
  [NodeType.FUNCTION]: {
    icon: '',
    color: '64, 109, 247',
  },
  [NodeType.EVENT]: {
    icon: '',
    color: '180, 25, 25',
  }
};

export interface Pin {
  //id
  id?: string;
  // 引脚类型
  type?: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'exec';
  // 设置器
  setter?: string;
  // 参数显示名称
  displayName?: string;
  // 参数名称
  name?: string;
  // 存储的类型 比如是 object 或者是 array
  fields?: Pin | Pin[];
  // 参数值
  value?: unknown;
  [key: string]: unknown;
}
export interface NodeDataItem {
  //用于判断触发了哪一个节点
  id?: string;
  //节点名称
  name: string;
  //节点类型
  type: NodeType;
  //节点的shape 默认是 base-node
  nodeShape?: ShapeName;
  //描述
  description?: string;
  //执行输入
  //execInput?: Pin[];
  //执行输出
  //execOutput?: Pin[];
  //参数输入
  input?: Pin[];
  //参数输出
  output?: Pin[];
  [key: string]: unknown;
}
export interface OutputNode{
  alias:string,
  id:string,
  type:string,
  css:string[],
}
